package org.jeecg.modules.api.sjtbApi.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.common.util.MathUtil;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Author: jeecg-boot
 * @Date:   2023-08-02
 * @Version: V1.0
 */
@Data
@ApiModel(value="发票信息数据同步接口请求对象", description="发票信息数据同步接口请求对象")
public class FpxxSyncParam implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "编号")
    private java.lang.String id;

    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private java.lang.String createBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private java.util.Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private java.lang.String updateBy;
    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private java.util.Date updateTime;
    /**所属部门*/
    @ApiModelProperty(value = "所属部门")
    private java.lang.String sysOrgCode;
    /**租户编号*/
    @Excel(name = "租户编号", width = 15)
    @ApiModelProperty(value = "租户编号")
    private java.lang.Integer tenantId;
    /**企业主键*/
    @Excel(name = "企业主键", width = 15)
    @ApiModelProperty(value = "企业主键")
    private java.lang.String companyId;
    /**发票类型代码*/
    @Excel(name = "发票类型代码", width = 15, dicCode = "xxfplxdm")
    @Dict(dicCode = "xxfplxdm")
    @ApiModelProperty(value = "发票类型代码")
    private java.lang.String fplxdm;
    /**发票类型名称*/
    @Excel(name = "发票类型名称", width = 15)
    @ApiModelProperty(value = "发票类型名称")
    private java.lang.String fplxmc;
    /**发票代码*/
    @Excel(name = "发票代码", width = 15)
    @ApiModelProperty(value = "发票代码")
    private java.lang.String fpdm;
    /**发票号码*/
    @Excel(name = "发票号码", width = 15)
    @ApiModelProperty(value = "发票号码")
    private java.lang.String fphm;
    /**合计金额*/
    @Excel(name = "合计金额", width = 15)
    @ApiModelProperty(value = "合计金额")
    private java.math.BigDecimal hjje;
    /**合计税额*/
    @Excel(name = "合计税额", width = 15)
    @ApiModelProperty(value = "合计税额")
    private java.math.BigDecimal hjse;

    @Excel(name = "价税合计", width = 15)
    @ApiModelProperty(value = "价税合计")
    @TableField(exist = false)
    private java.math.BigDecimal jshj;
    /**折扣金额*/
    @Excel(name = "折扣金额", width = 15)
    @ApiModelProperty(value = "折扣金额")
    private java.math.BigDecimal zkje;
    /**扣除额*/
    @Excel(name = "扣除额", width = 15)
    @ApiModelProperty(value = "扣除额")
    private java.math.BigDecimal kce;
    /**发票状态*/
    @Excel(name = "发票状态", width = 15, dicCode = "xxfpzt")
    @Dict(dicCode = "xxfpzt")
    @ApiModelProperty(value = "发票状态")
    private java.lang.String fpzt;
    /**回填状态*/
    @Excel(name = "回填状态", width = 15)
    @ApiModelProperty(value = "回填状态")
    private java.lang.String htzt;
    /**记账状态*/
    @Excel(name = "记账状态", width = 15)
    @ApiModelProperty(value = "记账状态")
    @Dict(dicCode = "xxjzzt")
    private java.lang.String jzzt;
    /**全电入账状态*/
    @Excel(name = "全电入账状态", width = 15)
    @ApiModelProperty(value = "全电入账状态")
    private java.lang.String qdrzzt;
    /**数据类型*/
    @Excel(name = "数据类型", width = 15, dictTable = "cs_xx_sjlx", dicText = "cname", dicCode = "ccode")
    @Dict(dictTable = "cs_xx_sjlx", dicText = "cname", dicCode = "ccode")
    @ApiModelProperty(value = "数据类型")
    private java.lang.String sjlx;
    /**所属业态*/
    @Excel(name = "所属业态", width = 15, dictTable = "cs_xx_ssyt", dicText = "cname", dicCode = "ccode")
    @Dict(dictTable = "cs_xx_ssyt", dicText = "cname", dicCode = "ccode")
    @ApiModelProperty(value = "所属业态")
    private java.lang.String sjyt;
    /**数据来源*/
    @Excel(name = "数据来源", width = 15, dictTable = "cs_xx_sjly", dicText = "cname", dicCode = "ccode")
    @Dict(dictTable = "cs_xx_sjly", dicText = "cname", dicCode = "ccode")
    @ApiModelProperty(value = "数据来源")
    private java.lang.String sjly;
    /**单据类型*/
    @Excel(name = "单据类型", width = 15, dictTable = "cs_xx_djlx", dicText = "cname", dicCode = "ccode")
    @Dict(dictTable = "cs_xx_djlx", dicText = "cname", dicCode = "ccode")
    @ApiModelProperty(value = "单据类型")
    private java.lang.String djlx;
    /**开票类型*/
    @Excel(name = "开票类型", width = 15, dicCode = "xxkplx")
    @Dict(dicCode = "xxkplx")
    @ApiModelProperty(value = "开票类型")
    private java.lang.String kplx;
    /**单据编号*/
    @Excel(name = "单据编号", width = 15)
    @ApiModelProperty(value = "单据编号")
    private java.lang.String djbh;
    /**单据日期*/
    @Excel(name = "单据日期", width = 15)
    @ApiModelProperty(value = "单据日期")
    private Date djrq;
    /**客户代码*/
    @Excel(name = "客户代码", width = 15)
    @ApiModelProperty(value = "客户代码")
    private java.lang.String khdm;
    /**客户名称*/
    @Excel(name = "客户名称", width = 15)
    @ApiModelProperty(value = "客户名称")
    private java.lang.String khmc;
    /**客户税号*/
    @Excel(name = "客户税号", width = 15)
    @ApiModelProperty(value = "客户税号")
    private java.lang.String khsh;
    /**客户地址*/
    @Excel(name = "客户地址", width = 15)
    @ApiModelProperty(value = "客户地址")
    private java.lang.String khdz;
    /**客户电话*/
    @Excel(name = "客户电话", width = 15)
    @ApiModelProperty(value = "客户电话")
    private java.lang.String khdh;
    /**客户地址电话*/
    @Excel(name = "客户地址电话", width = 15)
    @ApiModelProperty(value = "客户地址电话")
    private java.lang.String khdzdh;
    /**客户开户银行*/
    @Excel(name = "客户开户银行", width = 15)
    @ApiModelProperty(value = "客户开户银行")
    private java.lang.String khyh;
    /**客户银行卡账号*/
    @Excel(name = "客户银行卡账号", width = 15)
    @ApiModelProperty(value = "客户银行卡账号")
    private java.lang.String khzh;
    /**客户银行账号*/
    @Excel(name = "客户银行账号", width = 15)
    @ApiModelProperty(value = "客户银行账号")
    private java.lang.String khyhzh;
    /**公司代码*/
    @Excel(name = "公司代码", width = 15)
    @ApiModelProperty(value = "公司代码")
    private java.lang.String gsdm;
    /**销方名称*/
    @Excel(name = "销方名称", width = 15)
    @ApiModelProperty(value = "销方名称")
    private java.lang.String xfmc;
    /**销方税号*/
    @Excel(name = "销方税号", width = 15)
    @ApiModelProperty(value = "销方税号")
    private java.lang.String xfsh;
    /**销方地址*/
    @Excel(name = "销方地址", width = 15)
    @ApiModelProperty(value = "销方地址")
    private java.lang.String xfdz;
    /**销方电话*/
    @Excel(name = "销方电话", width = 15)
    @ApiModelProperty(value = "销方电话")
    private java.lang.String xfdh;
    /**销方地址电话*/
    @Excel(name = "销方地址电话", width = 15)
    @ApiModelProperty(value = "销方地址电话")
    private java.lang.String xfdzdh;
    /**销方开户银行*/
    @Excel(name = "销方开户银行", width = 15)
    @ApiModelProperty(value = "销方开户银行")
    private java.lang.String xfyh;
    /**销方银行卡账号*/
    @Excel(name = "销方银行卡账号", width = 15)
    @ApiModelProperty(value = "销方银行卡账号")
    private java.lang.String xfzh;
    /**销方银行账号*/
    @Excel(name = "销方银行账号", width = 15)
    @ApiModelProperty(value = "销方银行账号")
    private java.lang.String xfyhzh;
    /**开票人*/
    @Excel(name = "开票人", width = 15)
    @ApiModelProperty(value = "开票人")
    private java.lang.String kpr;
    /**收款人*/
    @Excel(name = "收款人", width = 15)
    @ApiModelProperty(value = "收款人")
    private java.lang.String skr;
    /**复核人*/
    @Excel(name = "复核人", width = 15)
    @ApiModelProperty(value = "复核人")
    private java.lang.String fhr;
    /**备注*/
    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private java.lang.String bz;
    /**特殊票种*/
    @Excel(name = "特殊票种", width = 15, dicCode = "xxtspz")
    @Dict(dicCode = "xxtspz")
    @ApiModelProperty(value = "特殊票种")
    private String tspz;
    /**特定要素类型代码*/
    @Excel(name = "特定要素类型代码", width = 15, dicCode = "xxtdyw")
    @ApiModelProperty(value = "特定要素类型代码")
    private String tdyslxdm;
    /**征收方式*/
    @Excel(name = "征收方式", width = 15, dicCode = "xxzsfs")
    @Dict(dicCode = "xxzsfs")
    @ApiModelProperty(value = "征收方式")
    private String zsfs;
    /**纸质发票标志*/
    @Excel(name = "纸质发票标志", width = 15)
    @ApiModelProperty(value = "纸质发票标志")
    private String zzfpbz;
    /**客户邮箱*/
    @Excel(name = "客户邮箱", width = 15)
    @ApiModelProperty(value = "客户邮箱")
    private String khlxyx;
    /**客户手机*/
    @Excel(name = "客户手机", width = 15)
    @ApiModelProperty(value = "客户手机")
    private String khlxfs;
    /**邮寄地址*/
    @Excel(name = "邮寄地址", width = 15)
    @ApiModelProperty(value = "邮寄地址")
    private String yjdz;
    /**邮寄接收人*/
    @Excel(name = "邮寄接收人", width = 15)
    @ApiModelProperty(value = "邮寄接收人")
    private String yjjsr;
    /**开票终端*/
    @Excel(name = "开票终端", width = 15)
    @ApiModelProperty(value = "开票终端")
    private String kpzddm;
    /**含税标志*/
    @Excel(name = "含税标志", width = 15)
    @ApiModelProperty(value = "含税标志")
    private java.lang.String hsbz;
    /**PDF地址*/
    @Excel(name = "PDF地址", width = 15)
    @ApiModelProperty(value = "PDF地址")
    private java.lang.String pdfdz;
    /**OFD地址*/
    @Excel(name = "OFD地址", width = 15)
    @ApiModelProperty(value = "OFD地址")
    private java.lang.String ofddz;
    /**XML地址*/
    @Excel(name = "XML地址", width = 15)
    @ApiModelProperty(value = "XML地址")
    private java.lang.String xmldz;
    /**开票时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "开票时间")
    private java.util.Date kprq;
    /**原单据编号*/
    @Excel(name = "原单据编号", width = 15)
    @ApiModelProperty(value = "原单据编号")
    private java.lang.String ydjbh;
    /**原发票代码*/
    @Excel(name = "原发票代码", width = 15)
    @ApiModelProperty(value = "原发票代码")
    private java.lang.String yfpdm;
    /**原发票号码*/
    @Excel(name = "原发票号码", width = 15)
    @ApiModelProperty(value = "原发票号码")
    private java.lang.String yfphm;

    @Excel(name = "红字信息表编号", width = 15)
    @ApiModelProperty(value = "红字信息表编号")
    private java.lang.String hzxxbbh;
    /**红冲原因*/
    @Excel(name = "红冲原因", width = 15)
    @ApiModelProperty(value = "红冲原因")
    private java.lang.String hcyy;
    /**税控码*/
    @Excel(name = "税控码", width = 15)
    @ApiModelProperty(value = "税控码")
    private java.lang.String skm;
    /**校验码*/
    @Excel(name = "校验码", width = 15)
    @ApiModelProperty(value = "校验码")
    private java.lang.String jym;
    /**二维码*/
    @Excel(name = "二维码", width = 15)
    @ApiModelProperty(value = "二维码")
    private java.lang.String ewm;

    /**作废人*/
    @Excel(name = "作废人", width = 15)
    @ApiModelProperty(value = "作废人")
    private java.lang.String zfr;
    /**作废日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "作废日期")
    private Date zfrq;
    /**作废原因*/
    @ApiModelProperty(value = "作废原因")
    private java.lang.String zfyy;

    /**价税合计计算*/
    public BigDecimal getJshj() {
        return MathUtil.add(this.getHjje()!=null?this.getHjje():BigDecimal.ZERO,this.getHjse()!=null?this.getHjse():BigDecimal.ZERO);
    }


}
